Міністерство освіти і науки України
Національний університет «Львівська політехніка»
Лабораторна робота №10
«Протоколи HTTP i FTP»
НTTP
НTTP (скор. від англ. HyperText Transfer Protocol - «протокол передачі гіпертексту) - протокол прикладного рівня передачі даних (спочатку - у вигляді гіпертекстових документів). Основою HTTP є технологія «клієнт-сервер», тобто передбачається існування споживачів (клієнтів), які ініціюють з'єднання і надсилають запит, і постачальників (серверів), які очікують з'єднання для отримання запиту, роблять необхідні дії і повертають назад повідомлення з результатом HTTP в даний час повсюдно використовується у Всесвітній павутині для отримання інформації з веб-сайтів. У 2006 році в Північній Америці частка HTTP-трафіку перевищила частку P2P-мереж і склала 46%, з яких майже половина - це передача потокового відео і звуку.HTTP використовується також як «транспорту» для інших протоколів прикладного рівня, таких як SOAP, XML-RPC, WebDAV.
Основним об'єктом маніпуляції в HTTP є ресурс, на який вказує URI (англ. Uniform Resource Identifier) в запиті клієнта. Зазвичай такими ресурсами є що зберігаються на сервері файли, але ними можуть бути логічні об'єкти або щось абстрактне. Особливістю протоколу HTTP є можливість вказати в запиті і відповіді спосіб представлення одного і того ж ресурсу за різними параметрами: формату, кодуванні, мови і т. д. Саме завдяки можливості вказівки способу кодування повідомлення клієнт і сервер можуть обмінюватися двійковими даними, хоча даний протокол є текстовим.
HTTP - протокол прикладного рівня, аналогічними йому є FTP і SMTP. Обмін повідомленнями йде по звичайній схемі «запит-відповідь». Для ідентифікації ресурсів HTTP використовує глобальні URI. На відміну від багатьох інших протоколів, HTTP не зберігає свого стану. Це означає відсутність збереження проміжного стану між парами «запит-відповідь». Компоненти, що використовують HTTP, можуть самостійно здійснювати збереження інформації про стан, пов'язаної з останніми запитами і відповідями. Браузер, що посилає запити, може відстежувати затримки відповідей. Сервер може зберігати IP-адреси і заголовки запитів останніх клієнтів. Однак сам протокол не обізнаний про попередні запити і відповідях, в ньому не передбачена внутрішня підтримка стану, до нього не висуваються такі вимоги.
HTTPS (Hypertext Transfer Protocol Secure) - розширення протоколу HTTP, підтримує шифрування. Дані, що передаються по протоколу HTTP, «упаковуються» в криптографічний протокол SSL або TLS, тим самим забезпечується захист цих даних. На відміну від HTTP, для HTTPS за замовчуванням використовується TCP-порт 443. Система була розроблена компанією Netscape Communications Corporation для забезпечення автентифікації і захищене з'єднання. HTTPS широко використовується у системах, в яких важлива безпека з'єднання, наприклад, у платіжних системах. В даний час HTTPS підтримується найбільш популярними браузерами. HTTPS не є окремим протоколом. По суті це звичайний HTTP, що працює через шифровані транспортні механізми SSL і TLS. Він забезпечує прийнятну захист від атак, заснованих на прослуховуванні мережевого з'єднання - від сніфферскіх атак і атак типу man-in-the-middle за умови, що будуть використовуватися адекватні шифрувальні засоби та сертифікат сервера перевірений і йому довіряють.
За замовчуванням HTTPS URL використовує 443 TCP-порт (для незахищеного HTTP - 80). Щоб підготовити веб-сервер для обробки https-з'єднань, адміністратор повинен отримати і встановити в систему сертифікат для цього веб-сервера. Сертифікат складається з двох частин (двох ключів) - public і private. Public-частина сертифікату використовується для зашифровування трафіку від клієнта до сервера в захищеному з'єднанні, private-частина - для розшифрування отриманого від клієнта зашифрованого трафіку на сервері. Сертифікат можна отримати в компанії-сертификатора (наприклад, VeriSign) - це платна послуга. Сертифікат повинен бути підписаний уповноваженою стороною (компанією-сертифікат...